package huawei_nowcoder;

import java.util.*;

/*
19  简单错误记录
 */
public class _19_SimpleWrongRecord {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        Map<String,Integer> map=new LinkedHashMap<>();

        while (sc.hasNext()){
            String strs=sc.next();
            int row=sc.nextInt();
            //找到文件名和错误行数
            String[] fileStrs=strs.split("\\\\");
            String fileName=fileStrs[fileStrs.length-1];
            if (fileName.length()>16)
                fileName=fileName.substring(fileName.length()-16);
            //净文件名字
            String record=fileName+" "+row;
            //如果有就加1，没有的话就加入
            if (map.containsKey(record)){
                map.put(record,map.get(record)+1);
            }else {
                map.put(record,1);
            }
        }
        //记录全部，输出最后8个
        int count=0;
        for(String string:map.keySet()){
            count++;
            if(count>(map.size()-8)) //输出最后八个记录
                System.out.println(string+" "+map.get(string));
        }
    }
}
/*

开发一个简单错误记录功能小模块，能够记录出错的代码所在的文件名称和行号。
处理：
1、 记录最多8条错误记录，循环记录（或者说最后只输出最后出现的八条错误记录），对相同的错误记录（净文件名称和行号完全匹配）只记录一条，错误计数增加；
2、 超过16个字符的文件名称，只记录文件的最后有效16个字符；
3、 输入的文件可能带路径，记录文件名称不能带路径。
输入描述:
一行或多行字符串。每行包括带路径文件名称，行号，以空格隔开。
输出描述:
将所有的记录统计并将结果输出，格式：文件名 代码行数 数目，一个空格隔开，如：
示例1
输入
复制
E:\V1R2\product\fpgadrive.c 1325
输出
复制
fpgadrive.c 1325 1
 */